home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Information / Digests / CSMP Digest / volume 3 / csmp-digest-v3-047 / doubleCR.1 < prev   
Encoding:
Text File  |  1995-12-31  |  45.8 KB  |  1,251 lines

  1. C.S.M.P. Digest             Tue, 26 Jul 94       Volume 3 : Issue 47
  2.  
  3. Today's Topics:
  4.  
  5.         AIFF
  6.         Announcing Macintosh AIFF-based DSP Think C Toolbox
  7.         AppleEvent Question
  8.         Bug in MIDI.h (Universal Interface)
  9.         Full file path?
  10.         Looking for a friendly native component sample.
  11.         Newbie ?: Where to get good reference materials
  12.         Problem using FSpGet-SetFInfo
  13.         list of crossplatform OO (C++, Smalltalk) development tools
  14.  
  15.  
  16.  
  17. The Comp.Sys.Mac.Programmer Digest is moderated by Francois Pottier
  18. (pottier@clipper.ens.fr).
  19.  
  20. The digest is a collection of article threads from the internet newsgroup
  21. comp.sys.mac.programmer.  It is designed for people who read c.s.m.p. semi-
  22. regularly and want an archive of the discussions.  If you don't know what a
  23. newsgroup is, you probably don't have access to it.  Ask your systems
  24. administrator(s) for details.  If you don't have access to news, you may
  25. still be able to post messages to the group by using a mail server like
  26. anon.penet.fi (mail help@anon.penet.fi for more information).
  27.  
  28. Each issue of the digest contains one or more sets of articles (called
  29. threads), with each set corresponding to a 'discussion' of a particular
  30. subject.  The articles are not edited; all articles included in this digest
  31. are in their original posted form (as received by our news server at
  32. nef.ens.fr).  Article threads are not added to the digest until the last
  33. article added to the thread is at least two weeks old (this is to ensure that
  34. the thread is dead before adding it to the digest).  Article threads that
  35. consist of only one message are generally not included in the digest.
  36.  
  37. The digest is officially distributed by two means, by email and ftp.
  38.  
  39. If you want to receive the digest by mail, send email to listserv@ens.fr
  40. with no subject and one of the following commands as body:
  41.     help                        Sends you a summary of commands
  42.     subscribe csmp-digest Your Name    Adds you to the mailing list
  43.     signoff csmp-digest            Removes you from the list
  44. Once you have subscribed, you will automatically receive each new
  45. issue as it is created.
  46.  
  47. The official ftp info is //ftp.dartmouth.edu/pub/csmp-digest.
  48. Questions related to the ftp site should be directed to
  49. scott.silver@dartmouth.edu. Currently no previous volumes of the CSMP
  50. digest are available there.
  51.  
  52. Also, the digests are available to WAIS users.  To search back issues
  53. with WAIS, use comp.sys.mac.programmer.src. With Mosaic, use
  54. http://www.wais.com/wais-dbs/comp.sys.mac.programmer.html.
  55.  
  56.  
  57. -------------------------------------------------------
  58.  
  59. >From elronx@athena.mit.edu (Elron A Yellin)
  60. Subject: AIFF
  61. Date: 8 Jul 1994 16:17:00 GMT
  62. Organization: Massachusetts Institute of Technology
  63.  
  64. Can anyone tell me the current standard for 
  65. the Audio Interchange File Format?  I've been
  66. having trouble finding the publication, and I 
  67. don't know when it was last updated.
  68. Any help would be much appreciated.
  69.  
  70. Elron A. Yellin
  71.  
  72. +++++++++++++++++++++++++++
  73.  
  74. >From Manuel Veloso <veloso@netcom.com>
  75. Date: Sat, 9 Jul 1994 18:55:29 GMT
  76. Organization: Ibex Productions
  77.  
  78. In article <2vju5s$kh2@senator-bedfellow.MIT.EDU> Elron A Yellin, elronx@athena.mit.edu
  79. writes:
  80. >Can anyone tell me the current standard for 
  81. >the Audio Interchange File Format?  I've been
  82. >having trouble finding the publication, and I 
  83. >don't know when it was last updated.
  84. >Any help would be much appreciated.
  85. >
  86.  
  87. This is from the audio FAQ, and probably will help. Both AIFF and
  88. AIFC are also documented in IM-6 (Sound Manager)
  89.  
  90. - ----------------------------------------------------------------------
  91. AIFF Format (Audio IFF) and AIFC
  92. - ------------------------------
  93.  
  94. This format was developed by Apple for storing high-quality sampled
  95. sound and musical instrument info; it is also used by SGI and several
  96. professional audio packages (sorry, I know no names).  An extension,
  97. called AIFC or AIFF-C, supports compression (see the last item below).
  98.  
  99. I've made a BinHex'ed MacWrite version of the AIFF spec (no idea if
  100. it's the same text as mentioned below) available by anonymous ftp from
  101. ftp.cwi.nl [192.16.184.180]; the file is /pub/audio/AudioIFF1.2.hqx.
  102. But you may be better off with the AIFF-C specs, see below.
  103.  
  104. Mike Brindley (brindley@ece.orst.edu) writes:
  105.  
  106. "The complete AIFF spec by Steve Milne, Matt Deatherage (Apple) is
  107. available in 'AMIGA ROM Kernal Reference Manual: Devices (3rd Edition)'
  108. 1991 by Commodore-Amiga, Inc.; Addison-Wesley Publishing Co.; 
  109. ISBN 0-201-56775-X, starting on page 435 (this edition has a charcoal
  110. grey cover).  It is available in most bookstores, and soon in many
  111. good librairies."
  112.  
  113. According to Mark Callow (msc@sgi.com):
  114.  
  115. A PostScript version of the AIFF-C specification is available via
  116. anonymous ftp on FTP.SGI.COM (192.48.153.1) as /sgi/aiff-c.9.26.91.ps.
  117.  
  118. ---------------------------
  119.  
  120. >From bdenckla@husc10.harvard.edu (Benjamin Denckla)
  121. Subject: Announcing Macintosh AIFF-based DSP Think C Toolbox
  122. Date: 11 Jul 1994 19:03:46 GMT
  123. Organization: Harvard University, Cambridge, MA
  124.  
  125. Now available from ftp.cs.jhu.edu in directory "pub/dsp":
  126.  
  127. AIFF-based DSP C Framework
  128.  
  129. This archive contains a Macintosh Think C library which provides a
  130. framework in which user-written C functions which process the data in AIFF
  131. files may be run.  The library contains main() and deals with all aspects
  132. of AIFF file handling, allowing the user to concentrate on his/her
  133. processing algorithm by writing only a small "plug-in" processing module
  134. with very short development time.  The library uses a block-processing
  135. strategy in order to reduce the function-call overhead when the
  136. user-written processing function is called.  The block-processing approach
  137. is also necessary because the large size of many AIFF files makes them
  138. impossible to load entirely into memory. 
  139.  
  140. The framework calls three user-written functions in the course of its 
  141. execution.  First it calls the user-written initialization function 
  142. init_process(), which would typically be used for tasks such as the setup 
  143. of lookup tables.  Then it repeatedly calls the user-written processing 
  144. function process_samdat(), each time placing a new block of data in the 
  145. buffer.  When the data has been exhausted, it calls the user-written 
  146. termination function term_process(), which would typically be used for 
  147. tasks such as freeing memory which the user had allocated in init_process().
  148.  
  149. Though the framework is designed for the processing of AIFF files where 
  150. an AIFF file is taken as input and an AIFF file is made as output, 
  151. through the setting of user-defined variables, the framework can be made 
  152. to take no input or make no output.  If the variable take_input is set to 
  153. zero, the framework will not make an attempt to open an input file.  This 
  154. mode is useful for tasks such as the generation of AIFF files by 
  155. algorithmic means.  If the variable make_output is set to zero, the 
  156. framework will not make an attempt to open an output file.  This mode is 
  157. useful for tasks such as the analysis of AIFF files, where the analysis 
  158. output goes to the screen or a non-AIFF file.
  159.  
  160. The framework exists in source form in the folder "framework source" and 
  161. in object code form as "framework.lib".  The source uses a few Think C 
  162. extensions to C, but I suspect that it could be ported to other compilers 
  163. or even other platforms without great difficulty as long as the 
  164. assumptions about the size of data types listed in "aiff.h" hold true.  
  165. If you want to link from the sources, the linkage required is specified 
  166. at the beginning of the file "aiff.c".  Linkage for the library is the 
  167. same except for the fact that aiff.c and interface.c need not be linked 
  168. since they are what the library contains.
  169.  
  170. Much more could be written about how to use the framework but time 
  171. constraints compel me to merely direct the reader to the examples in the 
  172. folder "example plug-in source" and to the source for the framework itself.
  173.  
  174. This project was funded in part by the Ford Foundation's project to 
  175. provide grants for undergraduate research at Harvard University.
  176.  
  177. Don't bother dowloading this document as a separate text file: it is 
  178. already included in the archive.
  179.  
  180. Ben Denckla
  181. bdenckla@husc.harvard.edu
  182. July 9, 1994
  183.  
  184.  
  185.  
  186. ---------------------------
  187.  
  188. >From Andrew_Bell@acd.org (Andrew Bell)
  189. Subject: AppleEvent Question
  190. Date: 06 Jul 1994 17:44:15 GMT
  191. Organization: Apple Corps of Dallas User Group
  192.  
  193. Hi. I'm writing an application which allows users to edit various aspects of
  194. their FC Settings Files. I've written the code for AppleEvents, and when you
  195. drag your settings file on my App, it works perfectly. My problem is this: I
  196. want my user to be greeted with a standard open dialog box if they didn't
  197. drag a file on my app. My code is set up like this:
  198.  
  199. Install Apple Events
  200. {Main Event Loop}
  201.  
  202. Is there any way I can execute some code if I'm not gonna receive an OpenDocs
  203. event? I'm coding this in Pascal.
  204.  
  205. Thanks in Advance,
  206. Andrew.
  207. andrewb@metronet.com        
  208.  
  209. +++++++++++++++++++++++++++
  210.  
  211. >From jwbaxter@olympus.net (John W. Baxter)
  212. Date: Wed, 06 Jul 1994 15:40:02 -0700
  213. Organization: Internet for the Olympic Peninsula
  214.  
  215. In article <893579165.3110756@acd.acd.org>, Andrew_Bell@acd.org wrote:
  216.  
  217. > Hi. I'm writing an application which allows users to edit various aspects of
  218. > their FC Settings Files. I've written the code for AppleEvents, and when you
  219. > drag your settings file on my App, it works perfectly. My problem is this: I
  220. > want my user to be greeted with a standard open dialog box if they didn't
  221. > drag a file on my app. My code is set up like this:
  222. > Install Apple Events
  223. > {Main Event Loop}
  224.  
  225. You should (barring some late-breaking additions) receive one of three
  226. events after your application is launched.  [Note:  I'm assuming you don't
  227. want to support System 6, too...if you do, see Inside Mac, where this is
  228. all spelled out.]
  229.  
  230.    'aevt'/'oapp':  "Your application has been double-clicked"
  231.    'aevt'/'odoc':  "You should open these documents"
  232.    'aevt'/'pdoc':  "You should print these documents" (Finder follows this
  233. with 'aevt'/'quit' if the user selected a doc and chose the Print command,
  234. and you weren't already running...you don't have to keep track of that bit
  235. of state information).
  236.  
  237.    So by that model, when you launch, you do the setup which is common
  238. among those three cases.  Then you wait for one of the events to come in,
  239. and handle it.  The 'oapp' means, in your case, put up the dialog (in
  240. other cases it means create an untitled document, or whatever).
  241.  
  242.    Note that two more possibilities have arisen recently:  you get
  243. launched and none of the three events arrives (you can time out and assume
  244. 'oapp' for that one, if you want to);  you get a no-op event in (I forget
  245. the class and ID).  That is the "none of the other three" case made
  246. explicit, and implies:  don't do anything until you're told...I'll get
  247. around to it sometime.
  248.  
  249.    --John
  250.  
  251. -- 
  252. John Baxter    Port Ludlow, WA, USA  [West shore, Puget Sound]
  253.    No hablo Intel.
  254.    jwbaxter@pt.olympus.net
  255.  
  256. +++++++++++++++++++++++++++
  257.  
  258. >From Mark Hanrek <hanrek@cts.com>
  259. Date: Thu, 7 Jul 1994 02:37:35 GMT
  260. Organization: The Information Workshop
  261.  
  262. In article <893579165.3110756@acd.acd.org> Andrew Bell,
  263. Andrew_Bell@acd.org writes:
  264.  
  265. > Hi. I'm writing an application which allows users to edit aspects of
  266. > their FC Settings Files. I've written code for AppleEvents, and when you
  267. > drag your settings on my App, it works perfectly. My problem is this: I
  268. > want my user to be greeted with a standard open dialog if they didn't
  269. > drag a file on my app. My code is set up like this:
  270. >
  271. > Install Apple Events
  272. > {Main Event Loop}
  273. >
  274. > Is there any way I can execute some code if I'm not gonna receive an 
  275. > OpenDocs event? I'm coding this in Pascal.
  276. >
  277. > Thanks in Advance,
  278. > Andrew.
  279. > andrewb@metronet.com        
  280.  
  281. Note that if your application does not receive one or more 'odoc' Apple
  282. events, it will receive an 'oapp' instead.  :)
  283.  
  284. Aha!!
  285.  
  286. Hope this helps.
  287.  
  288. Mark Hanrek
  289.  
  290. +++++++++++++++++++++++++++
  291.  
  292. >From jonpugh@netcom.com (Jon Pugh)
  293. Date: Thu, 7 Jul 1994 03:47:35 GMT
  294. Organization: NETCOM On-line Communication Services (408 261-4700 guest)
  295.  
  296. Andrew Bell (Andrew_Bell@acd.org) wrote:
  297. > Hi. I'm writing an application which allows users to edit various aspects of
  298. > their FC Settings Files. I've written the code for AppleEvents, and when you
  299. > drag your settings file on my App, it works perfectly. My problem is this: I
  300. > want my user to be greeted with a standard open dialog box if they didn't
  301. > drag a file on my app. My code is set up like this:
  302.  
  303. > Install Apple Events
  304. > {Main Event Loop}
  305.  
  306. > Is there any way I can execute some code if I'm not gonna receive an OpenDocs
  307. > event? I'm coding this in Pascal.
  308.  
  309. If you don't get an odoc, you will get an oapp.  Put up the dialog then.
  310.  
  311. Jon
  312.  
  313.  
  314. ---------------------------
  315.  
  316. >From setsu@lab2.yamaha.co.jp (Takashi Suzuki)
  317. Subject: Bug in MIDI.h (Universal Interface)
  318. Date: Thu, 7 Jul 1994 04:13:18 GMT
  319. Organization: 2nd dep. Electronics Development&Design Center YAMAHA, Japan.
  320.  
  321. I found a bug in MIDI.h (Universal Interface).
  322.  
  323. These lines :
  324. - -------------------------------- from here -------------------------------
  325. #if defined(powerc) || defined (__powerc)
  326. #pragma options align=mac68k
  327. #endif
  328. struct MIDIPortParams {
  329.     OSType      portID;     /*ID of port, unique within client*/
  330.     short       portType;   /*Type of port - input, output, time, etc.*/
  331.     short       timeBase;   /*refnum of time base, 0 if none*/
  332.     long        offsetTime; /*offset for current time stamps*/
  333.     Ptr         readHook;   /*routine to call when input data is valid*/
  334.     long        refCon;     /*refcon for port (for client use)*/
  335.     MIDIClkInfo initClock;  /*initial settings for a time base*/
  336.     Str255      name;       /*name of the port, This is a real live string, not a 
  337. ptr.*/
  338. };
  339. #if defined(powerc) || defined(__powerc)
  340. #pragma options align=reset
  341. #endif
  342. - -------------------------------- until here -------------------------------
  343.  
  344. should be someting like:
  345. - -------------------------------- from here -------------------------------
  346. typedef pascal short (*ReaderDefProcPtr)(MIDIPacketPtr myPacket, long myRefCon);
  347.  
  348. enum {
  349.     uppReaderDefProcInfo = kPascalStackBased
  350.                 | RESULT_SIZE(SIZE_CODE(sizeof(short)))
  351.                 | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Ptr)))
  352.                 | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  353. };
  354.  
  355. #if USESROUTINEDESCRIPTORS
  356. typedef UniversalProcPtr ReaderDefUPP;
  357.  
  358. #define NewReaderDefProc(userRoutine)           \
  359.                 (ReaderDefUPP) NewRoutineDescriptor((ProcPtr)(userRoutine),
  360.                 uppReaderDefProcInfo, GetCurrentISA())
  361. #else
  362. typedef ReaderDefProcPtr ReaderDefUPP;
  363.  
  364. #define NewReaderDefProc(userRoutine)           \
  365.                 (ReaderDefUPP)(userRoutine)
  366. #endif
  367.  
  368.  
  369. #if defined(powerc) || defined (__powerc)
  370. #pragma options align=mac68k
  371. #endif
  372. struct MIDIPortParams {
  373.     OSType          portID;     /*ID of port, unique within client*/
  374.     short           portType;   /*Type of port - input, output, time, etc.*/
  375.     short           timeBase;   /*refnum of time base, 0 if none*/
  376.     long            offsetTime; /*offset for current time stamps*/
  377.     ReaderDefUPP    readHook;   /*routine to call when input data is valid*/
  378.     long            refCon;     /*refcon for port (for client use)*/
  379.     MIDIClkInfo     initClock;  /*initial settings for a time base*/
  380.     Str255          name;       /*name of the port, This is a real live string, not a 
  381. ptr.*/
  382. };
  383. #if defined(powerc) || defined(__powerc)
  384. #pragma options align=reset
  385. #endif
  386. - -------------------------------- until here -------------------------------
  387.  
  388. Without this modification, applications will run into debugger
  389. when they receive MIDI data.
  390.  
  391. -- T.Suzuki
  392.  
  393.  
  394. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  395.   Takashi Suzuki    2nd dep. Electronics Development & Design Center YAMAHA
  396.       _///_                 Email : setsu@lab2.yamaha.co.jp
  397.      (.)-(.)~               NIFTY : GAF03072@niftyserve.or.jp
  398.         o                   Tel   : +81-539-62-5335 ; Fax  :+81-539-62-5269
  399. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  400.  
  401. ---------------------------
  402.  
  403. >From jbeeghly@u.washington.edu (Jeff Beeghly)
  404. Subject: Full file path?
  405. Date: 9 Jul 1994 20:36:07 GMT
  406. Organization: University of Washington
  407.  
  408.  
  409. OK, I come from a unix & a DOS background, and I'm trying to learn MAC
  410. programming.  My latest battle has been with the Mac file system...
  411.  
  412.  
  413. OK, If I have the following drive structure:
  414.  
  415. Internal                                                ROOT DRIVE
  416.    |
  417.    |
  418.    ------Applications                                   Folder
  419.                 |
  420.                 |
  421.                 --------Adobe Photoshop                 Folder
  422.                                |
  423.                                |
  424.                                -------------Photoshop   Application
  425.  
  426. On the Unix side, I'd expect the file position structure to be
  427.  
  428. Internal/Applications/Adobe Photoshop/Photoshop
  429.  
  430. On the Mac, it would be 
  431.  
  432. Internal:Applications:Adobe Photoshop:Photoshop
  433.  
  434. Well, I'm using the following to call the Open Dialog
  435.  
  436. StandardFileReply reply;
  437. StandardGetFile(0L, -1, 0L, &reply);
  438.  
  439. In THINK Reference, it states that the StandardFileReply contains a 
  440. FSSpec variable called sfFile, which is made up of the following structure:
  441. FSSpec {
  442.     short vRefName;
  443.     long parID;
  444.     Str63 name;
  445. };
  446.  
  447.  
  448. Well, I know that reply.sfFile.name contains just the name of the file, 
  449. and if I under stand correctly, the root drive (or the volume reference) 
  450. is stored as a number, and the directory that the file was in is also 
  451. stored as a number.  OK, fine.  But how do I get the text of the location?
  452.  
  453. In other words, how can I use the vRefNum, parID, & name menbers to get 
  454. the string "Internal:Applications:Adobe Photoshop:Photoshop" ?
  455.  
  456.  
  457. Also, I cave a couple books on programming the Mac, but none of them 
  458. really talk about files on the Mac.  Other than Inside Mac, are there any 
  459. good books out there that cover this issue?
  460.  
  461.  
  462. +++++++++++++++++++++++++++
  463.  
  464. >From rmah@panix.com (Robert Mah)
  465. Date: Sat, 09 Jul 1994 18:26:21 -0500
  466. Organization: One Step Beyond
  467.  
  468. jbeeghly@u.washington.edu (Jeff Beeghly) wrote:
  469.  
  470. ) OK, I come from a unix & a DOS background, and I'm trying to learn
  471. ) MAC programming.  My latest battle has been with the Mac file system.
  472. ) ...
  473. ) Well, I know that reply.sfFile.name contains just the name of the
  474. ) file, and if I under stand correctly, the root drive (or the volume
  475. ) reference) is stored as a number, and the directory that the file was
  476. ) in is also stored as a number.  OK, fine.  But how do I get the text
  477. ) of the location?
  478. ) In other words, how can I use the vRefNum, parID, & name menbers to
  479. ) get the string "Internal:Applications:Adobe Photoshop:Photoshop"?
  480.  
  481. You should think carefully before using full pathnames in non-developer
  482. oriented applications.  Unlike UNIX and DOS, Mac users change their 
  483. volume, folder and file names and move files and folders around with
  484. abandon and wanton disregard for programmer's perconceptions.
  485.  
  486. If you're trying to save the file's location, you should REALLY think
  487. about using aliases instead.  One of the few times I can think of to use
  488. full pathnames is to pass it to the stdio fopen() function.
  489.  
  490. If you really do need to get the full path name, there is sample code 
  491. from Apple available on the developer CD's and at:
  492.  
  493.   ftp://ftp.apple.com/dts/mac/sc/snippets/files/
  494.  
  495. It's basically a matter of walking up the directory tree using repeated
  496. calls to _PBGetCatInfo.  Oh and remember, you could be running under
  497. A/UX so check before assuming ":" is the pathname delimiter.
  498.  
  499. Cheers,
  500. Rob
  501. _____________________________________________________________________
  502. Robert S. Mah    :  Macintosh software development  :    212.947.5607
  503. One Step Beyond  :      and network consulting      :  rmah@panix.com
  504.  
  505. +++++++++++++++++++++++++++
  506.  
  507. >From bhorling@mail.trincoll.edu (Bryan Horling)
  508. Date: Sat, 09 Jul 1994 19:51:00 -0500
  509. Organization: Trinity College
  510.  
  511. In article <rmah-0907941826210001@rmah.dialup.access.net>, rmah@panix.com
  512. (Robert Mah) wrote:
  513.  
  514. > jbeeghly@u.washington.edu (Jeff Beeghly) wrote:
  515. > ) OK, I come from a unix & a DOS background, and I'm trying to learn
  516. > ) MAC programming.  My latest battle has been with the Mac file system.
  517. > ) ...
  518. > ) Well, I know that reply.sfFile.name contains just the name of the
  519. > ) file, and if I under stand correctly, the root drive (or the volume
  520. > ) reference) is stored as a number, and the directory that the file was
  521. > ) in is also stored as a number.  OK, fine.  But how do I get the text
  522. > ) of the location?
  523. > ) 
  524. > ) In other words, how can I use the vRefNum, parID, & name menbers to
  525. > ) get the string "Internal:Applications:Adobe Photoshop:Photoshop"?
  526. > You should think carefully before using full pathnames in non-developer
  527. > oriented applications.  Unlike UNIX and DOS, Mac users change their 
  528. > volume, folder and file names and move files and folders around with
  529. > abandon and wanton disregard for programmer's perconceptions.
  530. > If you're trying to save the file's location, you should REALLY think
  531. > about using aliases instead.  One of the few times I can think of to use
  532. > full pathnames is to pass it to the stdio fopen() function.
  533. > If you really do need to get the full path name, there is sample code 
  534. > from Apple available on the developer CD's and at:
  535. >   ftp://ftp.apple.com/dts/mac/sc/snippets/files/
  536. > It's basically a matter of walking up the directory tree using repeated
  537. > calls to _PBGetCatInfo.  Oh and remember, you could be running under
  538. > A/UX so check before assuming ":" is the pathname delimiter.
  539.  
  540. Looking at this in reverse, how can I use a full pathname to access a file
  541. or folder location to save or read from?  I'm writing an on-line
  542. application form in which I'm going to have the results saved to a server
  543. on the network (we're currently grappling with mounting said server)
  544. without user intervention (so StandardPutFile won't work), and the path to
  545. this spot will always be the same.  I have yet to find an easy way to
  546. specify this path in a useable form, although Think Ref says that it can
  547. be done.  Does anyone have any suggestions?  Thanks.
  548.  
  549. > Cheers,
  550. > Rob
  551. > _____________________________________________________________________
  552. > Robert S. Mah    :  Macintosh software development  :    212.947.5607
  553. > One Step Beyond  :      and network consulting      :  rmah@panix.com
  554.  
  555. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  556.     --Bryan Horling--      | >>bhorling@mail.trincoll.edu<<
  557.     -Head Consultant-      |    Trinity College, #1720  
  558. -A valuble low fat source- |    300 Summit St  
  559. -of protein and vitamin C- |    Hartford, CT 06106-3100
  560. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-        
  561.  
  562. +++++++++++++++++++++++++++
  563.  
  564. >From rmah@panix.com (Robert Mah)
  565. Date: Sat, 09 Jul 1994 22:52:44 -0500
  566. Organization: One Step Beyond
  567.  
  568. bhorling@mail.trincoll.edu (Bryan Horling) wrote:
  569.  
  570. ) Looking at this in reverse, how can I use a full pathname to access
  571. ) a file or folder location to save or read from?  I'm writing an
  572. ) on-line application form in which I'm going to have the results
  573. ) saved to a server on the network (we're currently grappling with
  574. ) mounting said server) without user intervention (so StandardPutFile
  575. ) won't work), and the path to this spot will always be the same.  I
  576. ) have yet to find an easy way to specify this path in a useable
  577. ) form, although Think Ref says that it can be done.  Does anyone
  578. ) have any suggestions?  Thanks.
  579.  
  580. Use aliases.  Full aliases will automount AppleShare servers, and
  581. with the ARA extension, even dialup ARA servers before mounting
  582. server volumes.  Aliases are good.
  583.  
  584. Cheers,
  585. Rob
  586. _____________________________________________________________________
  587. Robert S. Mah    :  Macintosh software development  :    212.947.5607
  588. One Step Beyond  :      and network consulting      :  rmah@panix.com
  589.  
  590. +++++++++++++++++++++++++++
  591.  
  592. >From rkwee@ee.pdx.edu (Roland Kwee)
  593. Date: 9 Jul 1994 22:26:39 -0700
  594. Organization: (none)
  595.  
  596. jbeeghly@u.washington.edu (Jeff Beeghly) writes:
  597.  
  598. >OK, I come from a unix & a DOS background, and I'm trying to learn MAC
  599. >programming.  My latest battle has been with the Mac file system...
  600.  
  601. Same with me. I wrote code to obtain full path names like the Pascal
  602. example in New Inside Mac/Files (but in C, of course). In fact, I wrote
  603. a set of functions to hide the Mac-style file IDs and to simulate
  604. the Unix-way. This makes code much more portable. Of course, the real
  605. Mac-programmer never wants his/her code to be portable to, say, a PC,
  606. but it is still useful to port ANSI-C/Unix-compatible code to the Mac.
  607.  
  608. Please send me email if you want me to mail you my code (I like peer
  609. review of my code) or to post it in the newsgroup.
  610.  
  611. --Roland            email: RolandKwee@ACM.org
  612.  
  613. +++++++++++++++++++++++++++
  614.  
  615. >From d88-jwa@hemul.nada.kth.se (Jon Wdtte)
  616. Date: 11 Jul 1994 08:31:54 GMT
  617. Organization: The Royal Institute of Technology
  618.  
  619. In <bhorling-0907941951000001@spam.pc.trincoll.edu> bhorling@mail.trincoll.edu (Bryan Horling) writes:
  620.  
  621. >Looking at this in reverse, how can I use a full pathname to access a file
  622. >or folder location to save or read from?  I'm writing an on-line
  623.  
  624. 1) If the path is shorter than 256 characters, just call
  625.    FSpMakeFSSpec on the name with a 0 volume and directory ID.
  626.  
  627. 2) Else use NewAliasMinimalFromFullPath and the ResolveAlias on it.
  628.  
  629. >on the network (we're currently grappling with mounting said server)
  630. >without user intervention (so StandardPutFile won't work), and the path to
  631. >this spot will always be the same.  I have yet to find an easy way to
  632.  
  633. The easiest thing would be to have a preferences setting for
  634. where this "spot" is (check the snippet for getting a folder if
  635. you can't choose a file)
  636.  
  637. Then create an alias to it with NewAlias, and store the alias
  638. data in your preferences document. When the user starts, resolve
  639. the alias using ResolveAlias, and you will not only get an FSSpec
  640. for the alias target, you'll also get the server automatically
  641. mounted, for free.
  642.  
  643. Cheers,
  644.  
  645.                     / h+
  646. -- 
  647.  -- Jon W{tte, h+@nada.kth.se, Mac Software Engineer Deluxe --
  648.  
  649.     Hackers push all the right buttons.
  650.  
  651. ---------------------------
  652.  
  653. >From ramapo@crestone.ssd.kodak.com (Pete Hoch x39699)
  654. Subject: Looking for a friendly native component sample.
  655. Date: Thu, 7 Jul 1994 13:02:54 GMT
  656. Organization: Eastman Kodak Company
  657.  
  658. I am looking for an example or description of anything I need to do to
  659. make a component native.  It does not need to be a fat component I just
  660. need to know if there are any special things I need to do for a native
  661. component.  I have allready looked on the QuickTime 2.0 beta CD and I
  662. have found nothing.
  663.  
  664. Thanks,
  665. Pete
  666.  
  667.  
  668. +++++++++++++++++++++++++++
  669.  
  670. >From tgaul@halcyon.com (Troy Gaul)
  671. Date: Fri, 08 Jul 1994 00:27:08 -0700
  672. Organization: Infinity Systems
  673.  
  674. In article <CsKMww.6n8@newsserver.pixel.kodak.com>,
  675. ramapo@crestone.ssd.kodak.com (Pete Hoch x39699) wrote:
  676.  
  677. > I am looking for an example or description of anything I need to do to
  678. > make a component native.  It does not need to be a fat component I just
  679. > need to know if there are any special things I need to do for a native
  680. > component.  I have allready looked on the QuickTime 2.0 beta CD and I
  681. > have found nothing.
  682.  
  683. Look up technical note QT 05 - Component Manager version 3.0.  It
  684. describes how to do native and fat components.  
  685.  
  686. For development, I got a component working as an accelerated resource with
  687. CodeWarrior 3, and then I just used an old-style 'thng' resource format. 
  688. I had problems when trying to use the extended format with a MW-generated
  689. code resource, but those problems may have been related to including the
  690. wrong library file in the project (I had included the ColorSyncStubs
  691. library from CW3, but the version of ColorSync I had installed had the
  692. shared library named 'ColorSync', so there was a runtime linking error).
  693.  
  694. _troy
  695. //////// //////___Troy Gaul__________________________tgaul@halcyon.com___//
  696.   //    //      Infinity Systems ; Redmond, Washington                  //
  697.  //    //  //  Good news is just life's way of keeping you off balance //
  698. //    //////__________________________________________________________//
  699.  
  700. ---------------------------
  701.  
  702. >From paulw@crl.com (Paul Winterrowd)
  703. Subject: Newbie ?: Where to get good reference materials
  704. Date: 8 Jul 1994 09:46:58 -0700
  705. Organization: CRL Dialup Internet Access    (415) 705-6060  [login: guest]
  706.  
  707. The subject says it all.  The IM books I've looked at contain
  708. Pascal code and I code in C.  Is there a way to get these
  709. reference books with C code/function specifications as opposed
  710. to Pascal?  I've read the Mac Programming FAQ and have not
  711. found an adequate answer.
  712.  
  713. My main interest at this point is with Quickdraw; however, it
  714. appears like I'm going to have to order the IM: Imaging book
  715. as the local bookstore does not have this volume.  Also, it 
  716. appears to have been left off of the bookmark CD which came 
  717. with my new Develop subscription.  The IM: Overview reference 
  718. lists the Imaging volume as dealing with Quickdraw.  Are there 
  719. any other volumes that contain information on this portion of 
  720. the toolbox or does this one cover it all?
  721.  
  722. I've been told that a company will be coming out with the complete
  723. IM reference series on CD later this summer; however, I really
  724. need this information now and I don't know if they are going to
  725. do any better with providing C code examples.
  726.  
  727. Email replies are appreciated as I only read this newsgroup once
  728. or twice a week.
  729.  
  730. Thanks,
  731.  
  732. paulw@aha.com
  733.  
  734.  
  735. -- 
  736. - ---------------------------------------------------------------
  737. I only speak for myself.  
  738.  
  739.  
  740. +++++++++++++++++++++++++++
  741.  
  742. >From Mark Hanrek <hanrek@cts.com>
  743. Date: Mon, 11 Jul 1994 02:08:16 GMT
  744. Organization: The Information Workshop
  745.  
  746. In article <2vjvu2$iiu@crl.crl.com> Paul Winterrowd, paulw@crl.com writes:
  747.  
  748. > The subject says it all.  The IM books I've looked at contain
  749. > Pascal code and I code in C.  Is there a way to get these
  750. > reference books with C code/function specifications as opposed
  751. > to Pascal?  I've read the Mac Programming FAQ and have not
  752. > found an adequate answer.
  753. >
  754. > My main interest at this point is with Quickdraw; however, it
  755. > appears like I'm going to have to order the IM: Imaging book
  756. > as the local bookstore does not have this volume.  Also, it 
  757. > appears to have been left off of the bookmark CD which came 
  758. > with my new Develop subscription.  The IM: Overview reference 
  759. > lists the Imaging volume as dealing with Quickdraw.  Are there 
  760. > any other volumes that contain information on this portion of 
  761. > the toolbox or does this one cover it all?
  762. >
  763. > I've been told that a company will be coming out with the complete
  764. > IM reference series on CD later this summer; however, I really
  765. > need this information now and I don't know if they are going to
  766. > do any better with providing C code examples.
  767. >
  768. > Email replies are appreciated as I only read this newsgroup once
  769. > or twice a week.
  770. >
  771. > Thanks,
  772. >
  773. > paulw@aha.com
  774.  
  775.  
  776. Paul and other newbies,
  777.  
  778. Here is some "perspective" that will help save you loads of time...
  779.  
  780.  
  781. - ---- Pascal in Reference Documentation
  782.  
  783. Pascal is to a large degree a descendant of "algol", which is a language
  784. from the sixties that was widely accepted as a standard way of
  785. communicating "algorithms".  ( ALGOrithmic Language: algol )  It was a
  786. kind of a "language-independent langauge".
  787.  
  788. Pascal is being used in a similar way in Inside Mac.  An "algorithm" is
  789. being communicated when you see examples in Pascal.  It is ourselves who
  790. mistakenly think that it is should be useful as more than that, like
  791. "working code".  :)  I made the same mistake myself.
  792.  
  793. In fact, very little code that is shown in reference books actually works
  794. in the real world.  Even if examples were given in C, it would be little
  795. help. 
  796.  
  797. It is important to not attempt to write software from a reference book. 
  798.  
  799.  
  800.     Working from documentation is like 
  801.     reading about a dead fish out of water.
  802.  
  803.     Example source code takes you 
  804.     directly to the living aquarium.
  805.  
  806.  
  807. One has to have both in order to be successful.  
  808.  
  809. One form (reference docs) shows the given thing in isolation so that it
  810. can be understood, the other (source code) contains all the other
  811. real-world things that must be "around it" in order for it to actually
  812. work.
  813.  
  814. Also, when you think about it, what is the most perfect language for
  815. communicating how to write software?  Yes, "example source code", and in
  816. the language you can speak!
  817.  
  818. There is quite a difference between "statements", and "example source
  819. code", too.
  820.  
  821. At one point I did a close examination and quickly saw that there are few
  822. toolbox calls remaining where you can simply look it up in the book, type
  823. it into your program, and that's that.
  824.  
  825. An aquarium is a "system" of intertwined and interdependent things.  If
  826. just one element is missing, or even the pH is a little out of whack,
  827. it's a dead aquarium.
  828.  
  829.  
  830. - ---- Specific answer
  831.  
  832. You asked about QuickDraw.  As a seasoned Macintosh graphics programmer,
  833. I can tell you that this is a perfect case-in-point.  The documentation
  834. conveys only a fraction of what you must know.
  835.  
  836. In some areas, such as the proper way to handle color tables, especially
  837. between applications, there is little or no information whatsoever
  838. including example source code.
  839.  
  840. Questions about QuickDraw, GWorlds, and CopyBits get asked every single
  841. day in c.s.m.p., endlessly, because new programmers are left to fend for
  842. themselves, and unfortunately are not guided along like they could be
  843. with a gentle tractor beam.
  844.  
  845. Well, "tractor beam on" ...
  846.  
  847.  
  848. - ---- A Successful Strategy
  849.  
  850. New programmers have their choice of accepting the following strategy
  851. now, or realizing it is true way later, the hard way. :)
  852.  
  853. I say this because this isn't a time to be fooling around.  We
  854. desperately need all the Macintosh programmers we can get, and large
  855. numbers throw in the towel part way through because it becomes too much.  
  856.  
  857. More often than not, this is preventable.  We'd rather you remain in
  858. orbit, and not burn up re-entering the atmosphere. :)
  859.  
  860. Keep in mind that the programmer who finishes *first* wins all the toys,
  861. not the programmer who can handle the most complexity.  
  862.  
  863. Don't screw around with things that waste your time.  Be belligerent and
  864. demanding about "getting on with it" already! Sheesh!!  ( like that :)
  865.  
  866.  
  867. - ---- One word:  Resources
  868.  
  869. Success is all about "resources".  There are many equally essential
  870. resources, not just one. 
  871.  
  872. Have as many as you can "on tap", at your fingertips, or quickly
  873. accessible.  This is one basis upon which you will compete with other
  874. programmers.
  875.  
  876. All along the way, continuously accumulate resources -- download example
  877. source code, collect tidbits of info you can tell you'd never figure out
  878. in a million years, collect references to things you'll "wish you had
  879. saved when you came across it", etc.
  880.  
  881.  
  882. Essentials for success:
  883.  
  884.   * Access to the Internet, America Online, or CompuServe.
  885.  
  886.   * Become a "source code pack rat".
  887.  
  888.   * Get ftp access to "ftp.apple.com".  Quietly take full advantage
  889.     of this gold mine until you can afford your own CD player and
  890.     subscriptions.  The example source code "word" is available here,
  891.     and on the Developer CD.
  892.  
  893.   * Participate in an online programming forum regularly. The AOL
  894.     Development Forum is a great one for beginners if c.s.m.p. seems
  895.     inappropriate.  Also, you don't have to say a word, yet you'll
  896.     learn a ton of things subliminally, and allows you to feel
  897.     "connected" with what's happening at the same time. 
  898.  
  899.   * The "buddy system" is good for programming, too.
  900.  
  901.   * Remember that if you have trouble understanding something,
  902.     or great difficulty doing something simple, don't blame yourself.
  903.     We are still going through the phase where programmers have
  904.     yet to realize that they too can have development software as 
  905.     powerful and advanced as the software they create for their
  906.     clients or employers routinely every day.
  907.    
  908.   * Essential Reference Information:
  909.  
  910.       * Inside Mac ( paper books sure are handy )
  911.       * Think Reference ( even handier! )
  912.       * All three volumes of c.s.m.p digest
  913.         ( for all the undocumented things )
  914.  
  915.   * Wisdoms that give you competitive advantage...
  916.  
  917.       * You cannot assess how long things will take
  918.       * Don't allow your time to be wasted
  919.       * Stand on the shoulders of work already done
  920.       * Just say "no"
  921.  
  922.  
  923. - -----------------------------------------------------------
  924.  
  925. Only you know what is best for you.  Use this information to help
  926. increase your advantage.
  927.  
  928.  
  929. Hope this helps.
  930.  
  931.  
  932. Mark Hanrek
  933. The Information Workshop
  934.  
  935. ---------------------------
  936.  
  937. >From system@asuvax.eas.asu.edu (Marc Lesure)
  938. Subject: Problem using FSpGet-SetFInfo
  939. Date: Fri, 8 Jul 1994 08:19:59 GMT
  940. Organization: Arizona State University
  941.  
  942. I'm having problems using FSpGetFInfo and FSpSetFInfo on a folder.  They
  943. always return an error of -43 (fnfErr).  IM VI states that these functions
  944. can be used on files or folders.  Here is my code segment, could some kind
  945. soul show me what's wrong.
  946.  
  947. OSErr err;
  948. FSSpec mfs;
  949. int vRef;
  950. long dirID, newdID;
  951. FInfo fndrInfo;
  952.  
  953. /* get system folder */
  954. err=FindFolder(kOnSystemDisk,kSystemFolderType,kDontCreateFolder,&vRef,&dirID);
  955.  
  956. /* get MyFolder */
  957. err=FSMakeFSSpec(vRef,dirID,"\pMyFolder",&mfs);
  958.  
  959. /* create it if it doesn't exist */
  960. if(err==fnfErr)
  961.     err=FSpDirCreate(&mfs,smSystemScript,&newdID);
  962.  
  963. err=FSpGetFInfo(&mfs,&fndrInfo);
  964. ...
  965. err=FSpSetFInfo(&mfs,&fndrInfo);
  966.  
  967. The FSpGet/SetFInfo calls fails regardless if the folder preexisted or if
  968. the code creates it.  It doesn't seem to matter if fndrInfo is defined as
  969. FInfo or DInfo.
  970.  
  971. Thanks for any help!!!
  972.  
  973. - ---------------------------------------------------------------------
  974. Marc Lesure / Arizona State University / Tempe, AZ
  975. "Between the world of men and make-believe, I can be found..."
  976. "False faces and meaningless chases, I travel alone..."
  977. "And where do you go when you come to the end of your dream?"
  978.  
  979. UUCP:       ...!ncar!noao!asuvax!lesure  
  980. Internet:   lesure@asuvax.eas.asu.edu
  981.  
  982. +++++++++++++++++++++++++++
  983.  
  984. >From mclow@coyote.csusm.edu (Marshall Clow)
  985. Date: 8 Jul 1994 09:24:40 -0700
  986. Organization: California State University San Marcos
  987.  
  988. Marc Lesure (system@asuvax.eas.asu.edu) wrote:
  989. >I'm having problems using FSpGetFInfo and FSpSetFInfo on a folder.  They
  990. >always return an error of -43 (fnfErr).  IM VI states that these functions
  991. >can be used on files or folders.  Here is my code segment, could some kind
  992. >soul show me what's wrong.
  993.  
  994. [ code deleted ]
  995. I believe that IM lies on this one. Use GetCatInfo instead.
  996.  
  997. Marshall CLow
  998. Aladdin Systems
  999. mclow@san_marcos.csusm.edu
  1000.  
  1001.  
  1002. +++++++++++++++++++++++++++
  1003.  
  1004. >From jumplong@aol.com (Jump Long)
  1005. Date: 10 Jul 1994 02:11:08 -0400
  1006. Organization: America Online, Inc. (1-800-827-6364)
  1007.  
  1008. In article <CsM4HC.z0@asuvax.eas.asu.edu>, system@asuvax.eas.asu.edu (Marc
  1009. Lesure) writes:
  1010.  
  1011. >I'm having problems using FSpGetFInfo and FSpSetFInfo on a folder.
  1012.  
  1013. Both Inside Macintosh Volume VI and Inside Macintosh: Files are wrong.
  1014. FSpGetFInfo and FSpSetFInfo work only on files - they do not work on
  1015. directories. The following code (from the soon to be released version 1.2
  1016. of MoreFiles) does what you want.
  1017.  
  1018. - Jim Luther
  1019.  
  1020. /*************************************************************************
  1021. ****/
  1022.  
  1023. pascal OSErr GetDInfo(short vRefNum,
  1024.         long dirID,
  1025.         StringPtr name,
  1026.         DInfo *fndrInfo)
  1027. {
  1028.  CInfoPBRec pb;
  1029.  OSErr error;
  1030.  
  1031.  pb.dirInfo.ioNamePtr = name;
  1032.  pb.dirInfo.ioVRefNum = vRefNum;
  1033.  pb.dirInfo.ioDrDirID = dirID;
  1034.  pb.dirInfo.ioFDirIndex = 0; /* use ioNamePtr and ioDrDirID */
  1035.  error = PBGetCatInfoSync(&pb);
  1036.  if ( error == noErr )
  1037.  {
  1038.   if ( (pb.dirInfo.ioFlAttrib & ioDirMask) != 0 )
  1039.    /* it's a directory, return the DInfo */
  1040.    *fndrInfo = pb.dirInfo.ioDrUsrWds;
  1041.   else
  1042.    /* oops, a file was passed */
  1043.    error = dirNFErr;
  1044.  }
  1045.  return ( error );
  1046. }
  1047.  
  1048. /*************************************************************************
  1049. ****/
  1050.  
  1051. pascal OSErr FSpGetDInfo(const FSSpec *spec,
  1052.         DInfo *fndrInfo)
  1053. {
  1054.  return ( GetDInfo(spec->vRefNum, spec->parID, (StringPtr)spec->name,
  1055. fndrInfo) );
  1056. }
  1057.  
  1058. /*************************************************************************
  1059. ****/
  1060.  
  1061. pascal OSErr SetDInfo(short vRefNum,
  1062.         long dirID,
  1063.         StringPtr name,
  1064.         const DInfo *fndrInfo)
  1065. {
  1066.  CInfoPBRec pb;
  1067.  OSErr error;
  1068.  
  1069.  pb.dirInfo.ioNamePtr = name;
  1070.  pb.dirInfo.ioVRefNum = vRefNum;
  1071.  pb.dirInfo.ioDrDirID = dirID;
  1072.  pb.dirInfo.ioFDirIndex = 0; /* use ioNamePtr and ioDrDirID */
  1073.  error = PBGetCatInfoSync(&pb);
  1074.  if ( error == noErr )
  1075.  {
  1076.   if ( (pb.dirInfo.ioFlAttrib & ioDirMask) != 0 )
  1077.   {
  1078.    /* it's a directory, set the DInfo */
  1079.    pb.dirInfo.ioDrUsrWds = *fndrInfo;
  1080.    pb.dirInfo.ioDrDirID = dirID;
  1081.    error = PBSetCatInfoSync(&pb);
  1082.   }
  1083.   else
  1084.    /* oops, a file was passed */
  1085.    error = dirNFErr;
  1086.  }
  1087.  return ( error );
  1088. }
  1089.  
  1090. /*************************************************************************
  1091. ****/
  1092.  
  1093. pascal OSErr FSpSetDInfo(const FSSpec *spec,
  1094.         const DInfo *fndrInfo)
  1095. {
  1096.  return ( SetDInfo(spec->vRefNum, spec->parID, (StringPtr)spec->name,
  1097. fndrInfo) );
  1098. }
  1099.  
  1100. /*************************************************************************
  1101. ****/
  1102.  
  1103.  
  1104. ---------------------------
  1105.  
  1106. >From craig@gpu.utcc.utoronto.ca (Craig Hubley)
  1107. Subject: list of crossplatform OO (C++, Smalltalk) development tools
  1108. Date: Fri, 8 Jul 1994 00:39:31 GMT
  1109. Organization: Craig Hubley & Associates
  1110.  
  1111. Our recent search for crossplatform GUI development tools yielded the following
  1112. possibilities (in no particular order).  Focus was on Windows+Mac portability
  1113. as that was the immediate problem.  Some toolkits, notably XVT, C++/Views,
  1114. ObjectWorks/C++, etc., cover OS/2 and Unix as well.  Many sources were used
  1115. but the search was not exhaustive.  Some things we have only partial pointers
  1116. to.  Would appreciate help filling them out.  If you mail directly to me I
  1117. will incorporate this information into the table (without verifying it).
  1118. Most important would be 1-800 numbers, email addresses, and pointers to
  1119. review articles in major publications (e.g. Byte, PC Week, Computer Shopper...)
  1120.  
  1121. We focused on those usable from C++ or Smalltalk which can be extended using
  1122. these (almost-standard, multivendor now) languages:
  1123.  
  1124. product        vendor
  1125. - -----        ------
  1126. InMark        InMark???
  1127. WNDX         WNDX Corp., Calgary, Alberta Canada (reviewed in Byte 1/94)
  1128. OpenGUI        Guild Products Inc., Belmont CA
  1129. ObjectViews    Quest Windows Corp, Santa Clara CA
  1130. Aspect        Open Inc., Colorado Springs CO 
  1131. ObjectWorks/C++    ParcPlace Systems, (408) area code
  1132. zApp        Zinc                (reviewed in Byte 1/94)
  1133. OpenDoc/MacApp    Apple (supposedly soon to be released)
  1134. win32s        Microsoft (supposedly crossplatform as of Visual C++ 2.0)
  1135. OWL 2.0        Borland (supposedly available for Macintosh
  1136. Appware        Novell (Borland requires this I think)
  1137.   Foundation
  1138.   UI Series
  1139.   VisualAppBuilder
  1140. Galaxy        Visix (expensive)
  1141. ???        Neuron Data (expensive)
  1142. XVT        XVT (reviewed in Byte 1/94) - called 'easiest for C programmers'
  1143. Power++        XVT (very new)
  1144. C++/Views    Liant, (508) area code, more like a Smalltalk library in C++
  1145.         (also reviewed in Byte 1/94) - called the 'most disciplined'
  1146.  
  1147. We weren't really looking at this but for database libraries we turned up:
  1148.  
  1149. FoxPro        Microsoft (can build DLLs to handle DB, and use from C/C++)
  1150. NeoAccess    NeoLogic, San Francisco, CA (a C++ database library)
  1151. CommonBase    ImageSoft
  1152. ...
  1153.  
  1154. For Smalltalk we turned up:
  1155.  
  1156. Smalltalk/V Mac    Digitalk
  1157. Smalltalk/V Win    Digitalk
  1158. ENFIN        Easel (app builder)
  1159. Subpanes    ObjectShare (app builder)
  1160. Smalltalk-80    ParcPlace
  1161. VisualWorks    ParcPlace (app builder)
  1162. VisualAge    IBM (OS/2 only, Windows versions promised, includes app builder)
  1163.  
  1164. We weren't looking at graphics tools.
  1165.  
  1166. Some products, like Symantec's Bedrock and Borland's thing, seem not to exist
  1167. if you contact the companies directly.  Possibly they were vaporware only.  In
  1168. fact Symantec definitely folded their work into OpenDoc and MacApp recently.
  1169.  
  1170. If you turn up *anything* not on this list that is usable from C++ or Smalltalk
  1171. I would appreciate hearing about it.  Other issues possibly worth discussing
  1172. (in the appropriate forums) would be:
  1173.  
  1174. - should there be a group devoted exclusively to platform-independent software
  1175.   development (i.e. where the developer is targetting at least 2 or 3 user
  1176.   platforms) - out of self-interest I would only be interested in tools that
  1177.   generate code, or produce modules that can be linked into, C++ or Smalltalk.
  1178.  
  1179.   (Frankly I think the world needs another single-vendor language, OO or not, 
  1180.   like a hole in its head, and would specifically exclude these from the group.
  1181.   Your mileage may vary - I am not interested in discussing this issue at all
  1182.   so if you feel differently *you* start the group).
  1183.  
  1184. - would someone be interested in expanding this list and making it a FAQ on
  1185.   such a group ?  I have little time for this but might consider it if someone
  1186.   else took over administrative responsibilities.
  1187.  
  1188. For the moment I would be willing to gather and recirculate experiences of
  1189. those doing real world commercial product development using any of the above.
  1190. This too could eventually make it into a FAQ.
  1191.  
  1192. Thanks,
  1193.  
  1194.   Craig Hubley -- Consultants in object-oriented technology, languages,  --
  1195.   Craig Hubley & Associates -- user interface design, user productivity  --
  1196.   craig@utcc.Utoronto.CA    -- and financially responsive methodologies  --
  1197.   Seventy Eaton Avenue, Toronto, Ontario, Canada M4J 2Z5 -- 416-778-6136 
  1198.  
  1199.  
  1200. -- 
  1201.   Craig Hubley -- Consultants in object-oriented technology, languages,  --
  1202.   Craig Hubley & Associates -- user interface design, user productivity  --
  1203.   craig@utcc.Utoronto.CA    -- and financially responsive methodologies  --
  1204.   Seventy Eaton Avenue, Toronto, Ontario, Canada M4J 2Z5 -- 416-778-6136 
  1205.  
  1206. +++++++++++++++++++++++++++
  1207.  
  1208. >From MorrisGC@ccmail.apldbio.com (George Morris)
  1209. Date: 8 Jul 94 19:18:04 GMT
  1210. Organization: Perkin Elmer, Applied Biosystems Div.
  1211.  
  1212. In article <CsLJ5w.F55@gpu.utcc.utoronto.ca>, craig@gpu.utcc.utoronto.ca
  1213. (Craig Hubley) wrote:
  1214.  
  1215. > Our recent search for crossplatform GUI development tools yielded the 
  1216. > following possibilities (in no particular order)
  1217.  
  1218. [material deleted]
  1219. > - would someone be interested in expanding this list and making it a FAQ on
  1220. >   such a group ?  I have little time for this but might consider it if someone
  1221. >   else took over administrative responsibilities.
  1222.  
  1223. As regards cross-platform development systems there already exists an
  1224. excellent list of these systems with prices, summaries, user comments,
  1225. etc. in the PIGUI (platform-independent Graphical User Interface) FAQ. 
  1226. This is available via anonymous FTP at rtfm.mit.edu (At least that is
  1227. where I got it). I believe it is also posted to the following newsgroups;
  1228. comp.windows.misc, comp.answers,news.answers.
  1229.  
  1230. Hope this helps
  1231.  
  1232. George Morris
  1233. MorrisGC@ccmail.apldbio.com
  1234.  
  1235. ---------------------------
  1236.  
  1237. End of C.S.M.P. Digest
  1238. **********************
  1239.  
  1240.  
  1241. ˇ